/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vzone.business;

import java.util.List;
import vzone.structs.OperatorCode;

/**
 *项目管理员的泛型接口
 * 此接口用于管理员(公司老板一类成员)的管理工作
 *
 * @author Kingpro
 *
 * @param <TypeA> 本体类型
 * @param <TypeB> 本体提供的类型
 */
public interface IBusinessControl<TypeA, TypeB>
{

    /**
     *列出所有项目列表
     *
     * @return 返回所有交易项目
     */
    public List<TypeB> ListAll();

    /**
     *增加项目
     *
     * @param objT 增加的项目
     * @return 操作码
     */
    public OperatorCode Add(TypeB objT);

    /**
     * 修改项目
     *
     * @param objT 修改的项目
     * @return 操作码
     */
    public OperatorCode Change(TypeB objT);

    /**
     * 删除交易项目
     *
     * @param objT 删除的项目
     * @return 操作码
     */
    public OperatorCode Delete(TypeB objT);

    /**
     * 获取主体信息
     *
     * @return 主体类对象
     */
    public TypeA GetBusinessInfo();

    /**
     * 修改主体信息
     *
     * @param busT 主体对象
     * @return 操作码
     */
    public OperatorCode ChangeBusinessInfo(TypeA busT);
}
